Developing software applications can be difficult. Typically, the development process results in errors during compilation that must be debugged before the final program is complete. Debugging these errors can be complex and difficult, especially as the software application becomes more complex. Inadequate debugging tools and/or weak instrumentation data often compound this difficulty. In addition, complex applications demand optimization to conserve memory, processing time, or other overhead considerations. Therefore, improvements are desirable.